//
//  FramePage.swift
//  PracticeDemo
//
//  Created by 顾浩然 on 2025/1/25.
//

import SwiftUI

struct FramePage: View {
    let colors = [
        SimpleGameResult(color : Color.brown),
        SimpleGameResult(color: Color.green),
        SimpleGameResult(color: Color.cyan)
    ]
    
    var body: some View {
        VStack{
            Button{
                //一个有点击事件的按钮
                print("Button pressed")
            }label: {
                Text("Please log in")
                    //这样可以创建一个MatchParent一般的效果
                    .frame(minWidth: 0 , maxWidth: .infinity , minHeight: 0 , maxHeight: 60)
                    .font(.largeTitle)
                    .foregroundColor(.white)
                    .background(Color.red)
            }
            
            Text("Switch a wiq")
                .background(Color.gray)
                .padding(.top,10)
                .frame(width: 300)
                .font(.title)
            
            //实现百分比大小
//            GeometryReader{ geometry in
//                HStack(spacing: 0){
//                    Text("left")
//                        .font(.title)
//                        .frame(width: geometry.size.width * 0.33)
//                        .background(Color.green)
//                    Text("right")
//                        .font(.title)
//                        .frame(width: geometry.size.width * 0.67)
//                        .background(Color.brown)
//                }
//            }
            
            //ForEach创建视图
            VStack(spacing:5){
                //符合identifiable协议的不需要指定ID 会自动找到数据类的ID
                ForEach(colors){ item in
                    Text("Result: \(item.color.description.capitalized)")
                        .background(item.color)
                        .foregroundColor(Color.white)
                }
            }.padding(.top,10)
            
            HStack {
                Text("The rain Spain falls")
                Text("Knowledge is power")
                //设置布局优先级
                    .layoutPriority(1)
            }
            
            HStack{
                Text("这是一段文本框这是一段文本框这是一段文本框这是一段文本框这是一段文本框这是一段文本框")
                    .frame(maxHeight: .infinity)
                    .background(Color.red)
                Text("这是另一段文本框这是另一段文本框这是另一段文本框这是另一段文本框这是另一段文本框这是另一段文本框")
                    .frame(maxHeight: .infinity)
                    .background(Color.brown)
            }
            .frame(maxHeight: 200)
            .fixedSize(horizontal: false, vertical: true)
        
        }.padding()
    }
}

struct FramePage_Previews: PreviewProvider {
    static var previews: some View {
        FramePage()
    }
}

//定义一个自定义View 然后在其他View中引用
struct TossResult: View{
    var body: some View{
        if(Bool.random()){
            Image("laser-show")
                .resizable()
                .scaledToFit()
        }else {
            Text("Better luck next time")
                .font(.title)
        }
    }
}

//如果我有一个id那么就符合了苹果的标准数据类协议可以使用Identifiable来标记
struct SimpleGameResult:Identifiable{
    let id = UUID()
    let color : Color
}
